#include "listitembox.h"
#include "ui_listitembox.h"


//QWidget是不能对hover这个生效的，需要进行事件拦截的效果

ListItemBox::ListItemBox(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ListItemBox),
    isLike(false)
{
    ui->setupUi(this);

    connect(ui->likeBtn, &QPushButton::clicked, this, &ListItemBox::onLikeBtnClicked);
}

ListItemBox::~ListItemBox()
{
    delete ui;
}


//重写输入的进入和离开事件，就是为了实现hover的效果
void ListItemBox::enterEvent(QEvent *event)
{
    setStyleSheet("background-color:#EFEFEF");
}



void ListItemBox::leaveEvent(QEvent *event)
{
    setStyleSheet("");
}


void ListItemBox::setMusicName(const QString &musicName)
{
    ui->musicNameLabel->setText(musicName);
}


void ListItemBox::setMusicSinger(const QString &musicSinger)
{
    ui->musicSingerLabel->setText(musicSinger);
}


void ListItemBox::setMusicAlbum(const QString &musicAlbum)
{
    ui->label_2->setText(musicAlbum);
}


void ListItemBox::setLikeMusic(bool isLike)
{
    this->isLike = isLike;
    if(isLike)
    {
        ui->likeBtn->setIcon(QIcon(":/image/like_2.png"));
    }
    else
    {
        ui->likeBtn->setIcon(QIcon(":/image/like_3.png"));
    }
}



/*

1，点击收藏按钮，更新按钮的图片，发送setIsLike信号

2，CommonPage捕捉setIsLike信号，转发updateLikeMusic信号

3，QQMusic捕获:
   修改Music的isLike属性
   通过CommonPage页面修改歌曲列表
   likePage->reFresh(musicList);
   locaPage->reFresh(musicList);

*/

void ListItemBox::onLikeBtnClicked()
{
    isLike = !isLike;
    setLikeMusic(isLike);

    //现在收藏或不收藏的状态改变，应该通知修改music对象中的isLike属性
    emit setIsLike(isLike);
}

//1,修改按钮图标：红色小心心和灰色小心心之间切换换成
//2,由未收藏到收藏，是Music对象的状态发生了改变，需要修改Music对象的isLike属性
//3,由于歌曲的状态发生了改变，需要修改likePage,localPage,recentPage的歌曲列表



